Virtualization creates a level of indirection or an abstraction layer between, for example, a physical object and a managing application. Virtualization may be a framework (i.e., methodology) for dividing the resources of a computer into multiple execution environments. A key benefit of virtualization is the ability to run multiple operating systems (OS) on a single physical server and share underlying hardware resources (i.e., partitioning).
OS and application virtualization in cloud computing may be realized using traditional virtual machines (VM) and Linux® Containers (LXC)(Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both). VMs may include a fully virtualized OS within a type 1 (i.e., native, bare metal) or type 2 (i.e., hosted) hypervisor. LXCs are a lightweight virtualization technology able to virtualize a Linux OS (less the kernel) and one or more applications by leveraging features provided by a modern Linux Kernel.
Migrating VMs and containers between servers may include copying the whole contents of a VM (i.e., files, directories, quota limits, configuration settings, etc.) to a container on a server. Traditionally, when migrating a VM to a container, a user may initiate a command to migrate the VM after manually determining the VM to be migrated satisfies various requirements, such that the VM can be realized in a container based environment.